package ec.edu.ups.rhc.servicio;
import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebMethod;
import javax.jws.WebService;

import ec.edu.ups.rhc.datos.ReservacionDAO;
import ec.edu.ups.rhc.datos.VueloDAO;
import ec.edu.ups.rhc.modelo.Reservacion;
import ec.edu.ups.rhc.modelo.Vuelo;

@WebService
public class ServicioWS 
{
	
	@Inject VueloDAO vueloDao;
	@Inject ReservacionDAO reservDao;
	
	@WebMethod
	public List<ProductoS> listarProductos(FiltroS filtro)
	{
		
		List<Vuelo> vuelos=vueloDao.listarDisponibles();
		List<ProductoS> prods=new ArrayList<ProductoS>();
		for(Vuelo v:vuelos)
		{
			ProductoS p=new ProductoS();
			p.setCodigo(v.getId());
			p.setCosto(v.getPrecio());
			p.setNombre("Vuelo-"+v.getId());
			p.setStock(v.getCapacidad());
			p.setTipo(v.getTipo());
			prods.add(p);
		}
		return prods;
	}
	
	@WebMethod
	public String regitrarReserva(ReservaS reserva)
	{
		try{
			
			Vuelo vuelo=vueloDao.leer(reserva.getCodigo());
			vuelo.setCapacidad(vuelo.getCapacidad()-1);
			
			if(vuelo.getCapacidad()==0)
				vuelo.setEstado(2);
			
			vueloDao.actualizar(vuelo);

			
			
		Reservacion r=new Reservacion();
		r.setClienteApellido(reserva.getNombre());
		r.setClienteCedula(reserva.getCedula());
		r.setClienteMail(reserva.getMail());
		r.setVuelo(vuelo);
				
		reservDao.insert(r);
		}catch(Exception e){return "error";}
		return null;
	}

}
